Versi 1
| Field | Isi |
|---|---|
| Dokumen ID | VBS-MST-002 |
| Deskripsi | Master SKU dan barang: mendaftarkan barang biasa (dengan atau tanpa varian) beserta satuan, harga per SKU, batasan stok, barcode, dan akun manual, serta barang grup yang tersusun dari beberapa SKU komponen |
| Nomor Revisi | 1 |
| Tanggal | 2026-10-04 |
| Keterangan | Dokumentasi baseline dari dokumentasi fitur demo dan kode FE |
1. Ringkasan
a. In scope
- User dapat melihat daftar barang (nama, kategori, tipe, mode pengadaan) dan membuka rincian SKU untuk barang bervarian
- User dapat memfilter barang berdasarkan nama, supplier, kategori barang, mode pengadaan, tipe barang, dan jenis barang
- User dapat mengunduh daftar barang ke Excel
- User dapat menambah barang biasa melalui langkah: informasi dasar, varian dan SKU (jika bervarian), pengaturan harga per SKU, pengaturan persediaan, pengaturan barcode, dan opsional pengaturan akun manual
- Informasi dasar mencakup foto, nama, satuan terkecil, satuan lain beserta konversinya, PPN, jenis barang utama, kategori, mode pengadaan (dibeli, hasil produksi, pembelian dan produksi, jasa), dapat dijual, stok diikuti, memiliki varian, deskripsi, supplier utama, berat, serta satuan jual dan satuan beli
- Memilih jenis barang utama dapat mengisi default kategori, satuan, dan harga dari pengaturan jenis barang
- User dengan hak barang grup dapat menambah barang grup yang terdiri dari beberapa SKU komponen beserta kuantitas, satuan, HPP, dan harga jual
- User dapat mengubah informasi dasar barang (termasuk komponen barang grup), harga jual dan harga beli per SKU, batasan stok per SKU, barcode per satuan, serta menambah SKU varian baru
- User dapat memulihkan barang dari arsip dengan memperhatikan batas jumlah barang paket langganan
b. Catatan
c. Kesimpulan
- [FE] -
- [BE] -
2. Functional Requirement
| Kode | Deskripsi |
|---|---|
| FR-01 | Sistem menampilkan daftar barang aktif dengan kolom nama barang, kategori barang, tipe barang, dan mode pengadaan |
| FR-02 | User dapat memfilter daftar berdasarkan nama, supplier utama, kategori barang, mode pengadaan, tipe barang, dan jenis barang utama |
| FR-03 | User dapat membuka rincian SKU (kode, nama SKU, satuan, barcode) untuk barang bervarian |
| FR-04 | User dapat mengunduh daftar barang beserta SKU, satuan terkecil, jenis, supplier utama, harga jual, dan harga pokok ke Excel |
| FR-05 | User dapat menambah barang biasa tanpa varian dengan satu SKU |
| FR-06 | User dengan hak multivarian dapat menambah barang bervarian; SKU dibentuk dari kombinasi varian per kategori varian |
| FR-07 | Sistem menyimpan harga jual satuan, harga beli pokok/standar, harga jual minimum, harga beli maksimum, dan harga per jenis customer per SKU |
| FR-08 | Sistem menyimpan pengaturan persediaan (stok minimal, target stok, stok maksimal) sebagai kelompok stok per SKU jika stok barang diikuti |
| FR-09 | Sistem menyimpan barcode per satuan SKU secara otomatis atau manual |
| FR-10 | User dapat mengatur akun persediaan, akun biaya, dan akun pendapatan secara manual |
| FR-11 | User dengan hak barang grup dapat menambah barang grup dengan minimal satu komponen SKU |
| FR-12 | User dapat mengubah informasi dasar barang beserta SKU, konversi satuan, foto, dan komponen grup |
| FR-13 | User dapat mengubah harga jual POS, harga jual minimum, dan harga beli standar / maksimum per SKU |
| FR-14 | User dapat mengubah batasan stok per SKU |
| FR-15 | User dapat mengubah barcode per satuan SKU |
| FR-16 | User dapat menambah SKU varian baru pada barang yang sudah ada beserta harga, batasan stok, konversi, dan barcode |
| FR-17 | User dapat memulihkan barang dari arsip; brand paket simple dibatasi maksimal 1000 master barang |
3. Use Case List
| Kode | Deskripsi |
|---|---|
| UC-01 | Melihat dan memfilter daftar barang |
| UC-02 | Mengunduh daftar barang ke Excel |
| UC-03 | Menambah barang biasa tanpa varian |
| UC-04 | Menambah barang bervarian dengan banyak SKU |
| UC-05 | Menambah barang grup |
| UC-06 | Mengubah informasi dasar barang |
| UC-07 | Mengatur harga jual dan harga beli per SKU |
| UC-08 | Mengatur batasan stok per SKU |
| UC-09 | Mengubah barcode per satuan SKU |
| UC-10 | Menambah SKU varian baru pada barang |
| UC-11 | Memulihkan barang dari arsip |
4. Use Case Scenario
UC-01 : Melihat dan memfilter daftar barang
| Aktor | User brand |
| Deskripsi | User melihat daftar barang aktif dan menyaringnya |
| Prekondisi | User sudah login Brand aktif terpilih |
| Alur utama | 1. User membuka menu Master, Barang, SKU dan Barang. 2. Sistem memuat daftar barang aktif beserta pilihan kategori, jenis barang, satuan, dan supplier untuk filter. 3. User mengisi nama atau membuka panel filter (supplier, kategori, mode pengadaan, tipe barang, jenis barang). 4. Sistem memuat ulang daftar sesuai filter. 5. Untuk barang bervarian, user membuka baris untuk melihat rincian SKU. |
| Alur negatif | - Jika daftar kosong tanpa filter, muncul "Daftar Barang masih kosong". - Jika filter tidak menemukan data, muncul "Barang Tidak Ditemukan". |
| Bisnis rule | - Mode pengadaan pada filter: Barang dapat dibeli, Barang hasil produksi, Barang pembelian dan produksi, Barang jasa. - Tombol tambah barang memerlukan hak #barang basic; tambah barang grup memerlukan hak #barang-grup; arsip memerlukan hak archive; import memerlukan hak #import-barang. |
| Postkondisi | Daftar barang tampil sesuai filter |
| Trigger | User membuka menu SKU dan Barang |
| Kode FR | FR-01 FR-02 FR-03 |
UC-02 : Mengunduh daftar barang ke Excel
| Aktor | User brand |
| Deskripsi | User mengunduh daftar barang sesuai filter ke file Excel |
| Prekondisi | User berada di daftar barang |
| Alur utama | 1. User klik Unduh File. 2. Sistem mengambil semua barang sesuai filter beserta harga jual, harga beli, SKU, dan supplier utama. 3. Sistem membuat file daftar-barang.xlsx. |
| Alur negatif | - Jika data supplier atau harga gagal dimuat, kolom terkait tampil kosong / "Tidak Memiliki Supplier". |
| Bisnis rule | - Satu baris Excel per SKU dengan kolom kategori, kode SKU, nama SKU, satuan terkecil, jenis barang, supplier utama, harga jual ecer, harga pokok. |
| Postkondisi | File Excel terunduh |
| Trigger | User klik Unduh File |
| Kode FR | FR-04 |
UC-03 : Menambah barang biasa tanpa varian
| Aktor | User brand dengan hak barang basic |
| Deskripsi | User membuat barang dengan satu SKU |
| Prekondisi | Master satuan, kategori, dan jenis barang tersedia Brand belum melewati batas master barang paket |
| Alur utama | 1. User klik Tambah Baru, Barang. 2. User mengisi informasi dasar dan memilih memiliki varian = Tidak. 3. User mengisi pengaturan harga. 4. Jika stok diikuti, user mengisi stok minimal, target stok, dan stok maksimal. 5. User memilih barcode otomatis atau mengisi barcode manual. 6. Opsional: user mengaktifkan akun manual dan memilih akun persediaan, biaya, pendapatan. 7. User klik Simpan. 8. Sistem menyimpan barang, mengunggah foto, dan menampilkan "Berhasil Buat Barang". |
| Alur negatif | - Jika brand paket simple sudah memiliki 1000 barang, muncul "Master Barang anda melebihi limit yang di tentukan jika ingin menambah silahkan upgrade paket anda ke yang lebih tinggi!" dan user dikembalikan ke daftar. - Jika informasi dasar belum lengkap, muncul "Ada Data yang kosong di Informasi Dasar!". - Jika satuan lain dipilih tanpa qty, muncul "Masukkan qty satuan lain!". - Jika harga tidak valid, muncul "Tab Pengaturan Harga Ada yang error". - Jika barang dapat dijual tetapi harga kosong, muncul "Ada data yang kosong di pengaturan harga". |
| Bisnis rule | - Tipe barang stock jika stok diikuti, selain itu non-stock.- PPN default 11% bila konfigurasi PPN brand aktif. - Konversi satuan terkecil selalu rate 1; satuan lain diurutkan berdasarkan nilai konversi. - Satuan jual / beli default ke satuan terkecil. - Kode SKU otomatis kecuali user memilih kode manual. |
| Postkondisi | Barang dan SKU tersimpan |
| Trigger | User klik Simpan |
| Kode FR | FR-05 FR-07 FR-08 FR-09 FR-10 |
UC-04 : Menambah barang bervarian dengan banyak SKU
| Aktor | User brand dengan hak multivarian |
| Deskripsi | User membuat barang yang memiliki beberapa varian sehingga menghasilkan banyak SKU |
| Prekondisi | Kategori varian dan varian sudah dibuat |
| Alur utama | 1. User mengisi informasi dasar dan memilih memiliki varian = Ya. 2. Pada step Varian dan SKU, user memilih kategori varian dan varian. 3. Sistem membentuk kombinasi SKU. 4. User mengisi harga, persediaan, dan barcode untuk masing-masing SKU. 5. User klik Simpan. 6. Sistem menyimpan barang dengan banyak SKU. |
| Alur negatif | - Jika varian belum dipilih, muncul "Tab Pengaturan Harga Ada yang error". - Validasi lain sama dengan UC-03. |
| Bisnis rule | - Step varian hanya muncul jika user punya hak #multivarian dan bukan barang grup.- Barang ditandai multivarian jika SKU lebih dari satu. - Penamaan SKU mengikuti varian terpilih, bukan input bebas. |
| Postkondisi | Barang dengan banyak SKU tersimpan |
| Trigger | User klik Simpan |
| Kode FR | FR-06 FR-07 FR-08 FR-09 |
UC-05 : Menambah barang grup
| Aktor | User brand dengan hak barang grup |
| Deskripsi | User membuat paket barang yang tersusun dari beberapa SKU |
| Prekondisi | SKU komponen sudah ada |
| Alur utama | 1. User klik Tambah Baru, Barang Grup. 2. User mengisi informasi dasar yang tersedia. 3. Pada tabel "Grup Barang Terdiri Dari", user memilih barang / SKU komponen, kuantitas, satuan, HPP, dan harga jual (opsional). 4. User mengisi pengaturan harga dan barcode. 5. User klik Simpan. |
| Alur negatif | - Jika tidak ada komponen, muncul notifikasi "Grup Barang Terdiri Dari". - Validasi informasi dasar dan harga sama dengan UC-03. |
| Bisnis rule | - Mode pengadaan Grup dan tipe barang grup.- Tab persediaan tidak dijalankan untuk barang grup. - Harga jual komponen dengan satuan non-terkecil dibagi qty terkecil. - HPP dan harga jual grup default dihitung dari jumlah komponen. |
| Postkondisi | Barang grup tersimpan beserta komponen |
| Trigger | User klik Simpan |
| Kode FR | FR-11 |
UC-06 : Mengubah informasi dasar barang
| Aktor | User brand dengan hak barang basic |
| Deskripsi | User mengubah data dasar barang, SKU, konversi satuan, foto, atau komponen grup |
| Prekondisi | Barang sudah ada |
| Alur utama | 1. User membuka halaman ubah barang. 2. Sistem memuat detail barang dan komponen (untuk barang grup). 3. User mengubah data lalu klik Simpan. 4. Sistem memperbarui barang, memperbarui foto SKU, dan menampilkan "Berhasil Update Barang". |
| Alur negatif | - Jika simpan gagal, muncul pesan error dari server. |
| Bisnis rule | - Konversi lama yang dihapus user tetap dikirim agar dinonaktifkan. - Komponen grup yang dihapus dikirim dengan tanda deleted: true.- Kode SKU dibuat ulang jika user memilih ubah kode SKU. |
| Postkondisi | Data barang terbarui |
| Trigger | User klik Simpan |
| Kode FR | FR-12 |
UC-07 : Mengatur harga jual dan harga beli per SKU
| Aktor | User brand dengan hak barang basic |
| Deskripsi | User mengubah harga jual POS (termasuk per jenis customer dan qty minimal), harga jual minimum, serta harga beli standar dan maksimum |
| Prekondisi | Barang memiliki SKU |
| Alur utama | 1. User membuka tab harga jual barang. 2. Sistem memuat harga jual POS, harga jual minimum, dan harga beli. 3. User mengubah harga lalu klik Simpan. 4. Sistem menyimpan harga minimum / beli per SKU, kemudian harga jual POS, lalu menampilkan "Berhasil Update Harga Jual POS". |
| Alur negatif | - Jika simpan harga jual gagal, muncul pesan error dari server. |
| Bisnis rule | - Harga jual minimum dan harga beli hanya disimpan untuk konversi rate 1 dan nilai di atas 0. - Jika data minimum / beli belum ada maka dibuat baru, jika sudah ada diperbarui. - Perubahan pilihan harga per SKU / harga customer per SKU disimpan ke barang. |
| Postkondisi | Harga SKU terbarui |
| Trigger | User klik Simpan pada tab harga |
| Kode FR | FR-07 FR-13 |
UC-08 : Mengatur batasan stok per SKU
| Aktor | User brand dengan hak barang basic |
| Deskripsi | User mengatur stok minimal, target stok, dan stok maksimal per SKU |
| Prekondisi | Barang bertipe stok |
| Alur utama | 1. User membuka tab batasan stok. 2. User mengubah nilai per SKU. 3. User klik Simpan. 4. Sistem menampilkan "Berhasil Update Batasan Stok!". |
| Alur negatif | - Jika kelompok stok gagal dibuat / diperbarui, SKU tetap tanpa perubahan batasan. |
| Bisnis rule | - Batasan stok disimpan sebagai kelompok stok dengan nama general "nama barang - nama SKU". - Jika SKU belum memiliki kelompok stok, sistem membuat kelompok stok lalu mengaitkannya ke SKU. |
| Postkondisi | Batasan stok SKU terbarui |
| Trigger | User klik Simpan |
| Kode FR | FR-08 FR-14 |
UC-09 : Mengubah barcode per satuan SKU
| Aktor | User brand dengan hak barang basic |
| Deskripsi | User mengubah barcode setiap satuan pada setiap SKU |
| Prekondisi | Barang memiliki SKU dan konversi satuan |
| Alur utama | 1. User membuka tab barcode. 2. User mencari SKU bila perlu dan mengubah barcode atau memilih otomatis. 3. User klik Simpan. 4. Sistem menampilkan "Berhasil update barcode". |
| Alur negatif | - Jika barcode ditolak server (mis. sudah dipakai), muncul pesan error dari server. |
| Bisnis rule | - Barcode disimpan per konversi satuan SKU. |
| Postkondisi | Barcode terbarui |
| Trigger | User klik Simpan |
| Kode FR | FR-09 FR-15 |
UC-10 : Menambah SKU varian baru pada barang
| Aktor | User brand dengan hak multivarian |
| Deskripsi | User menambah kombinasi varian baru pada barang yang sudah ada |
| Prekondisi | Barang bervarian sudah ada |
| Alur utama | 1. User membuka halaman SKU varian baru. 2. User memilih varian per kategori. 3. Opsional: user mengisi batasan stok, harga jual minimum, harga beli, harga jual satuan, dan barcode. 4. User klik Simpan. 5. Sistem membuat SKU baru beserta data pendukungnya. |
| Alur negatif | - Kegagalan pembuatan data pendukung tidak membatalkan SKU yang sudah dibuat. |
| Bisnis rule | - Nama SKU = gabungan nama varian dengan tanda hubung. - Konversi SKU baru mengikuti satuan barang; barcode hanya pada satuan rate 1. |
| Postkondisi | SKU baru tersedia pada barang |
| Trigger | User klik Simpan |
| Kode FR | FR-16 |
UC-11 : Memulihkan barang dari arsip
| Aktor | User brand dengan hak archive |
| Deskripsi | User mengaktifkan kembali barang yang tidak aktif |
| Prekondisi | Ada barang tidak aktif |
| Alur utama | 1. User membuka Arsip barang. 2. User mencentang barang yang akan dipulihkan. 3. User klik pulihkan dan konfirmasi. 4. Sistem mengaktifkan barang beserta SKU dan konversinya, lalu menampilkan "Berhasil memulihkan Barang terpilih". |
| Alur negatif | - Jika brand sudah melewati batas, muncul "Master Barang anda melebihi limit yang di tentukan ...". - Jika jumlah yang dipulihkan melebihi sisa kuota, muncul "Barang yang anda pulihkan lebih dari limit yang ditentukan. Sisa Limit master Barang: (sisa)". |
| Bisnis rule | - Batas 1000 master barang hanya berlaku untuk paket #simple.- SKU dan konversi ikut diaktifkan kembali. |
| Postkondisi | Barang kembali aktif |
| Trigger | User klik pulihkan |
| Kode FR | FR-17 |
5. Data Flow Diagram
DFD-01
DFD-02 — Alur tambah barang
6. Sequence Diagram
SD-01 — UC-01 : Melihat dan memfilter daftar barang
SD-02 — UC-02 : Mengunduh daftar barang ke Excel
SD-03 — UC-03 : Menambah barang biasa tanpa varian
SD-04 — UC-04 : Menambah barang bervarian dengan banyak SKU
SD-05 — UC-05 : Menambah barang grup
SD-06 — UC-06 : Mengubah informasi dasar barang
SD-07 — UC-07 : Mengatur harga jual dan harga beli per SKU
SD-08 — UC-08 : Mengatur batasan stok per SKU
SD-09 — UC-09 : Mengubah barcode per satuan SKU
SD-10 — UC-10 : Menambah SKU varian baru pada barang
SD-11 — UC-11 : Memulihkan barang dari arsip
7. Table Schema
8. API Schema
| Endpoint | Status | Perubahan |
|---|---|---|
GET /barang | existing | - |
GET /barang/:id | existing | - |
POST /laporan-barang/sku-report | existing | - |
POST /supplier/get-supplier | existing | - |
GET /attribute-barang-tambahan | existing | - |
POST /v2-1/barang | existing | - |
POST /v2-1/barang/bulk-update | existing | - |
POST /sku/upload-image | existing | - |
GET /komponen | existing | - |
POST /sku | existing | - |
PUT /sku/:id | existing | - |
POST /barang-min-harga-jual | existing | - |
PUT /barang-min-harga-jual/:id | existing | - |
POST /barang-harga-beli | existing | - |
PUT /barang-harga-beli/:id | existing | - |
POST /barang-harga-jual-pos | existing | - |
PUT /barang-harga-jual-pos/bulk/:id | existing | - |
POST /alias | existing | - |
PUT /alias/:id | existing | - |
PUT /konversi | existing | - |
POST /konversi/bulk | existing | - |